{ "patcher" : { "fileversion" : 1, "appversion" : { "major" : 8, "minor" : 0, "revision" : 6, "architecture" : "x64", "modernui" : 1 } , "classnamespace" : "box", "rect" : [ 34.0, 79.0, 1212.0, 607.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, "default_fontface" : 0, "default_fontname" : "Arial", "gridonopen" : 1, "gridsize" : [ 15.0, 15.0 ], "gridsnaponopen" : 1, "objectsnaponopen" : 1, "statusbarvisible" : 2, "toolbarvisible" : 1, "lefttoolbarpinned" : 0, "toptoolbarpinned" : 0, "righttoolbarpinned" : 0, "bottomtoolbarpinned" : 0, "toolbars_unpinned_last_save" : 0, "tallnewobj" : 0, "boxanimatetime" : 200, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "style" : "", "subpatcher_template" : "", "boxes" : [ { "box" : { "id" : "obj-66", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 738.0, 62.0, 47.0, 54.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_initial_enable" : 1, "parameter_mmax" : 100.0, "parameter_initial" : [ 100.0 ], "parameter_shortname" : "Amount", "parameter_type" : 0, "parameter_unitstyle" : 5, "parameter_mmin" : -100.0, "parameter_longname" : "live.dial[8]" } } , "triangle" : 1, "varname" : "live.dial[8]" } } , { "box" : { "id" : "obj-64", "maxclass" : "live.menu", "numinlets" : 1, "numoutlets" : 3, "outlettype" : [ "", "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 770.0, 141.0, 100.0, 15.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 30, "parameter_shortname" : "live.menu", "parameter_enum" : [ "Linear Interpolation", "Quadratic Ease In", "Quadratic Ease Out", "Quadratic Ease In/Out", "Cubic Ease In", "Cubic Ease Out", "Cubic Ease In/Out", "Quartic Ease In", "Quartic Ease Out", "Quartic Ease In/Out", "Quintic Ease In", "Quintic Ease Out", "Quintic Ease In/Out", "Sine Ease In", "Sine Ease Out", "Sine Ease In/Out", "Circular Ease In", "Circular Ease Out", "Circular Ease In/Out", "Exponential Ease In", "Exponential Ease Out", "Exponential Ease In/Out", "Elastic Ease In", "Elastic Ease Out", "Elastic Ease In/Out", "Back Ease In", "Back Ease Out", "Back Ease In/Out", "Bounce Ease In", "Bounce Ease Out", "Bounce Ease In/Out" ], "parameter_type" : 2, "parameter_longname" : "live.menu" } } , "varname" : "live.menu" } } , { "box" : { "audioframesize" : 256, "id" : "obj-53", "maxclass" : "plot~", "numinlets" : 1, "numoutlets" : 1, "numpoints" : 6, "outlettype" : [ "" ], "patching_rect" : [ 616.0, 245.0, 242.0, 154.0 ], "subplots" : [ { "color" : [ 0.4, 0.4, 0.75, 1.0 ], "thickness" : 3.0, "point_style" : "none", "line_style" : "lines", "number_style" : "none", "filter" : "none", "domain_start" : 0.0, "domain_end" : 1.0, "domain_style" : "linear", "domain_markers" : [ ], "domain_labels" : [ ], "range_start" : 0.0, "range_end" : 1.0, "range_style" : "linear", "range_markers" : [ ], "range_labels" : [ ], "origin_x" : 0.0, "origin_y" : 0.0 } ] } } , { "box" : { "id" : "obj-46", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 690.0, 116.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 100.0, "parameter_shortname" : "Amount", "parameter_type" : 0, "parameter_unitstyle" : 5, "parameter_longname" : "live.dial[6]" } } , "varname" : "live.dial[6]" } } , { "box" : { "id" : "obj-47", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 690.0, 62.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1000.0, "parameter_shortname" : "Release", "parameter_type" : 0, "parameter_unitstyle" : 2, "parameter_longname" : "live.dial[7]" } } , "varname" : "live.dial[7]" } } , { "box" : { "id" : "obj-44", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 621.5, 57.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 100.0, "parameter_shortname" : "Sustain", "parameter_type" : 0, "parameter_unitstyle" : 5, "parameter_longname" : "live.dial[4]" } } , "varname" : "live.dial[4]" } } , { "box" : { "id" : "obj-45", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 560.0, 57.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1000.0, "parameter_shortname" : "Attack 2", "parameter_type" : 0, "parameter_unitstyle" : 2, "parameter_longname" : "live.dial[5]" } } , "varname" : "live.dial[5]" } } , { "box" : { "id" : "obj-42", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 484.0, 116.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 100.0, "parameter_shortname" : "Amount", "parameter_type" : 0, "parameter_unitstyle" : 5, "parameter_longname" : "live.dial[2]" } } , "varname" : "live.dial[2]" } } , { "box" : { "id" : "obj-43", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 484.0, 57.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1000.0, "parameter_shortname" : "Decay", "parameter_type" : 0, "parameter_unitstyle" : 2, "parameter_longname" : "live.dial[3]" } } , "varname" : "live.dial[3]" } } , { "box" : { "id" : "obj-41", "maxclass" : "newobj", "numinlets" : 11, "numoutlets" : 2, "outlettype" : [ "signal", "" ], "patcher" : { "fileversion" : 1, "appversion" : { "major" : 8, "minor" : 0, "revision" : 6, "architecture" : "x64", "modernui" : 1 } , "classnamespace" : "box", "rect" : [ 143.0, 164.0, 1101.0, 576.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, "default_fontface" : 0, "default_fontname" : "Arial", "gridonopen" : 1, "gridsize" : [ 15.0, 15.0 ], "gridsnaponopen" : 1, "objectsnaponopen" : 1, "statusbarvisible" : 2, "toolbarvisible" : 1, "lefttoolbarpinned" : 0, "toptoolbarpinned" : 0, "righttoolbarpinned" : 0, "bottomtoolbarpinned" : 0, "toolbars_unpinned_last_save" : 0, "tallnewobj" : 0, "boxanimatetime" : 200, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "style" : "", "subpatcher_template" : "", "boxes" : [ { "box" : { "id" : "obj-28", "maxclass" : "newobj", "numinlets" : 5, "numoutlets" : 1, "outlettype" : [ "" ], "patcher" : { "fileversion" : 1, "appversion" : { "major" : 8, "minor" : 0, "revision" : 6, "architecture" : "x64", "modernui" : 1 } , "classnamespace" : "box", "rect" : [ 59.0, 104.0, 718.0, 593.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, "default_fontface" : 0, "default_fontname" : "Arial", "gridonopen" : 1, "gridsize" : [ 15.0, 15.0 ], "gridsnaponopen" : 1, "objectsnaponopen" : 1, "statusbarvisible" : 2, "toolbarvisible" : 1, "lefttoolbarpinned" : 0, "toptoolbarpinned" : 0, "righttoolbarpinned" : 0, "bottomtoolbarpinned" : 0, "toolbars_unpinned_last_save" : 0, "tallnewobj" : 0, "boxanimatetime" : 200, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "style" : "", "subpatcher_template" : "", "boxes" : [ { "box" : { "id" : "obj-50", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 337.75, 432.0, 66.0, 22.0 ], "text" : "prepend 1." } } , { "box" : { "id" : "obj-49", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 236.5, 432.0, 66.0, 22.0 ], "text" : "prepend 0." } } , { "box" : { "id" : "obj-48", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 459.0, 213.0, 137.0, 22.0 ], "text" : "if $i1 >= 1. then 1 else 2" } } , { "box" : { "id" : "obj-47", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "", "" ], "patching_rect" : [ 288.75, 390.0, 68.0, 22.0 ], "text" : "gate 2" } } , { "box" : { "id" : "obj-43", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 52.0, 279.0, 29.5, 22.0 ], "text" : "+ 1." } } , { "box" : { "id" : "obj-41", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 110.0, 279.0, 29.5, 22.0 ], "text" : "+ 1." } } , { "box" : { "id" : "obj-39", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 168.0, 279.0, 29.5, 22.0 ], "text" : "+ 1." } } , { "box" : { "id" : "obj-37", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 308.0, 169.0, 29.5, 22.0 ], "text" : "+ 1." } } , { "box" : { "id" : "obj-30", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "bang" ], "patching_rect" : [ 261.0, 213.0, 22.0, 22.0 ], "text" : "t b" } } , { "box" : { "id" : "obj-29", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 226.0, 279.0, 29.5, 22.0 ], "text" : "+ 1." } } , { "box" : { "id" : "obj-16", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 304.0, 213.0, 143.0, 22.0 ], "text" : "if $i1 >= 1. then 0. else 1." } } , { "box" : { "comment" : "", "id" : "obj-11", "index" : 1, "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 304.0, 489.0, 30.0, 30.0 ] } } , { "box" : { "id" : "obj-56", "maxclass" : "newobj", "numinlets" : 5, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 64.0, 325.0, 246.0, 22.0 ], "text" : "pak 0. 0. 0. 0. 0." } } , { "box" : { "id" : "obj-10", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "bang" ], "patching_rect" : [ 299.0, 112.0, 22.0, 22.0 ], "text" : "t b" } } , { "box" : { "id" : "obj-9", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 236.5, 174.0, 29.5, 22.0 ], "text" : "* 1." } } , { "box" : { "id" : "obj-8", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 182.5, 174.0, 29.5, 22.0 ], "text" : "* 1." } } , { "box" : { "id" : "obj-7", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 128.5, 174.0, 29.5, 22.0 ], "text" : "* 1." } } , { "box" : { "id" : "obj-6", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 74.5, 174.0, 29.5, 22.0 ], "text" : "* 1." } } , { "box" : { "comment" : "", "id" : "obj-5", "index" : 5, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 280.0, 55.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "", "id" : "obj-4", "index" : 4, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 226.0, 55.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "", "id" : "obj-3", "index" : 3, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 172.0, 55.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "", "id" : "obj-2", "index" : 2, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 118.0, 55.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "", "id" : "obj-1", "index" : 1, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 64.0, 55.0, 30.0, 30.0 ] } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-6", 0 ], "source" : [ "obj-1", 0 ] } } , { "patchline" : { "destination" : [ "obj-6", 0 ], "order" : 3, "source" : [ "obj-10", 0 ] } } , { "patchline" : { "destination" : [ "obj-7", 0 ], "order" : 2, "source" : [ "obj-10", 0 ] } } , { "patchline" : { "destination" : [ "obj-8", 0 ], "order" : 1, "source" : [ "obj-10", 0 ] } } , { "patchline" : { "destination" : [ "obj-9", 0 ], "order" : 0, "source" : [ "obj-10", 0 ] } } , { "patchline" : { "destination" : [ "obj-29", 1 ], "order" : 1, "source" : [ "obj-16", 0 ] } } , { "patchline" : { "destination" : [ "obj-30", 0 ], "order" : 0, "source" : [ "obj-16", 0 ] } } , { "patchline" : { "destination" : [ "obj-39", 1 ], "order" : 2, "source" : [ "obj-16", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 1 ], "order" : 3, "source" : [ "obj-16", 0 ] } } , { "patchline" : { "destination" : [ "obj-43", 1 ], "order" : 4, "source" : [ "obj-16", 0 ] } } , { "patchline" : { "destination" : [ "obj-7", 0 ], "source" : [ "obj-2", 0 ] } } , { "patchline" : { "destination" : [ "obj-56", 4 ], "source" : [ "obj-29", 0 ] } } , { "patchline" : { "destination" : [ "obj-8", 0 ], "source" : [ "obj-3", 0 ] } } , { "patchline" : { "destination" : [ "obj-29", 0 ], "order" : 0, "source" : [ "obj-30", 0 ] } } , { "patchline" : { "destination" : [ "obj-39", 0 ], "order" : 1, "source" : [ "obj-30", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 0 ], "order" : 2, "source" : [ "obj-30", 0 ] } } , { "patchline" : { "destination" : [ "obj-43", 0 ], "order" : 3, "source" : [ "obj-30", 0 ] } } , { "patchline" : { "destination" : [ "obj-16", 0 ], "order" : 1, "source" : [ "obj-37", 0 ] } } , { "patchline" : { "destination" : [ "obj-48", 0 ], "order" : 0, "source" : [ "obj-37", 0 ] } } , { "patchline" : { "destination" : [ "obj-56", 3 ], "order" : 0, "source" : [ "obj-39", 0 ] } } , { "patchline" : { "destination" : [ "obj-56", 2 ], "order" : 1, "source" : [ "obj-39", 0 ] } } , { "patchline" : { "destination" : [ "obj-9", 0 ], "source" : [ "obj-4", 0 ] } } , { "patchline" : { "destination" : [ "obj-56", 1 ], "source" : [ "obj-41", 0 ] } } , { "patchline" : { "destination" : [ "obj-56", 0 ], "source" : [ "obj-43", 0 ] } } , { "patchline" : { "destination" : [ "obj-49", 0 ], "source" : [ "obj-47", 0 ] } } , { "patchline" : { "destination" : [ "obj-50", 0 ], "source" : [ "obj-47", 1 ] } } , { "patchline" : { "destination" : [ "obj-47", 0 ], "source" : [ "obj-48", 0 ] } } , { "patchline" : { "destination" : [ "obj-11", 0 ], "source" : [ "obj-49", 0 ] } } , { "patchline" : { "destination" : [ "obj-10", 0 ], "order" : 1, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-37", 0 ], "order" : 0, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-6", 1 ], "order" : 5, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-7", 1 ], "order" : 4, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-8", 1 ], "order" : 3, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-9", 1 ], "order" : 2, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-11", 0 ], "source" : [ "obj-50", 0 ] } } , { "patchline" : { "destination" : [ "obj-47", 1 ], "source" : [ "obj-56", 0 ] } } , { "patchline" : { "destination" : [ "obj-43", 0 ], "source" : [ "obj-6", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 0 ], "source" : [ "obj-7", 0 ] } } , { "patchline" : { "destination" : [ "obj-39", 0 ], "source" : [ "obj-8", 0 ] } } , { "patchline" : { "destination" : [ "obj-29", 0 ], "source" : [ "obj-9", 0 ] } } ] } , "patching_rect" : [ 683.5, 195.0, 101.0, 22.0 ], "saved_object_attributes" : { "description" : "", "digest" : "", "globalpatchername" : "", "tags" : "" } , "text" : "patcher scalePlot" } } , { "box" : { "id" : "obj-19", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "bang" ], "patching_rect" : [ 803.0, 258.0, 58.0, 22.0 ], "text" : "loadbang" } } , { "box" : { "id" : "obj-24", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 803.0, 296.0, 183.0, 22.0 ], "text" : "defineline lines, definepoint none" } } , { "box" : { "comment" : "To plot~", "id" : "obj-7", "index" : 2, "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 683.5, 354.0, 30.0, 30.0 ] } } , { "box" : { "id" : "obj-26", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 885.0, 90.0, 75.0, 22.0 ], "text" : "scaleAmt $1" } } , { "box" : { "id" : "obj-25", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 885.0, 60.0, 39.0, 22.0 ], "text" : "/ 100." } } , { "box" : { "comment" : "Amount (-100 - 100)", "id" : "obj-23", "index" : 11, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 885.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "id" : "obj-22", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 795.0, 60.0, 74.0, 22.0 ], "text" : "easefunc $1" } } , { "box" : { "comment" : "Interpolation type", "id" : "obj-21", "index" : 10, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 795.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "id" : "obj-20", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "signal" ], "patcher" : { "fileversion" : 1, "appversion" : { "major" : 8, "minor" : 0, "revision" : 6, "architecture" : "x64", "modernui" : 1 } , "classnamespace" : "dsp.gen", "rect" : [ 34.0, 484.0, 883.0, 607.0 ], "bglocked" : 0, "openinpresentation" : 0, "default_fontsize" : 12.0, "default_fontface" : 0, "default_fontname" : "Arial", "gridonopen" : 1, "gridsize" : [ 15.0, 15.0 ], "gridsnaponopen" : 1, "objectsnaponopen" : 1, "statusbarvisible" : 2, "toolbarvisible" : 1, "lefttoolbarpinned" : 0, "toptoolbarpinned" : 0, "righttoolbarpinned" : 0, "bottomtoolbarpinned" : 0, "toolbars_unpinned_last_save" : 0, "tallnewobj" : 0, "boxanimatetime" : 200, "enablehscroll" : 1, "enablevscroll" : 1, "devicewidth" : 0.0, "description" : "", "digest" : "", "tags" : "", "style" : "", "subpatcher_template" : "", "boxes" : [ { "box" : { "id" : "obj-2", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 831.0, 75.0, 87.0, 22.0 ], "text" : "history lastAmt" } } , { "box" : { "id" : "obj-23", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 813.0, 131.0, 150.0, 20.0 ], "text" : "Envelope" } } , { "box" : { "id" : "obj-22", "maxclass" : "comment", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 672.0, 574.0, 150.0, 20.0 ], "text" : "Interpolation" } } , { "box" : { "id" : "obj-21", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 941.0, 38.0, 95.0, 22.0 ], "text" : "param scaleAmt" } } , { "box" : { "code" : "val = in1;\r\n\r\nif(val <= 0) {\r\n\tval = 0;\r\n}\r\nelse if(val >= 1) {\r\n\tval = 1;\r\n}\r\n\r\nif(scaleAmt >= 0) {\r\n\tout1 = scaleAmt * val;\r\n}\r\nelse {\r\n\tout1 = abs(scaleAmt) * (1 - val);\r\n}\r\n", "fontface" : 0, "fontname" : "", "fontsize" : 12.0, "id" : "obj-10", "maxclass" : "codebox", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 79.0, 983.0, 463.0, 282.0 ] } } , { "box" : { "id" : "obj-9", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 941.0, 8.0, 95.0, 22.0 ], "text" : "param easefunc" } } , { "box" : { "code" : "// Modeled after the line y = x\ninterpLinearInterpolation(value)\n{\n\treturn value;\n}\n\n// Modeled after the parabola y = x^2\ninterpQuadraticEaseIn(value)\n{\n\treturn value * value;\n}\n\n// Modeled after the parabola y = -x^2 + 2x\ninterpQuadraticEaseOut(value)\n{\n\treturn -(value * (value - 2));\n}\n\n// Modeled after the piecewise quadratic\n// y = (1/2)((2x)^2) ; [0, 0.5)\n// y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1]\ninterpQuadraticEaseInOut(value)\n{\n\tif (value < 0.5) {\n\t\treturn 2 * value * value;\n\t} else {\n\t\treturn (-2 * value * value) + (4 * value) - 1;\n\t}\n}\n\n// Modeled after the cubic y = x^3\ninterpCubicEaseIn(value)\n{\n\treturn value * value * value;\n}\n\n// Modeled after the cubic y = (x - 1)^3 + 1\ninterpCubicEaseOut(value)\n{\n\ttempValue = (value - 1);\n\treturn tempValue * tempValue * tempValue + 1;\n}\n\n// Modeled after the piecewise cubic\n// y = (1/2)((2x)^3) ; [0, 0.5)\n// y = (1/2)((2x-2)^3 + 2) ; [0.5, 1]\ninterpCubicEaseInOut(value)\n{\n\tif (value < 0.5) {\n\t\treturn 4 * value * value * value;\n\t} else {\n\t\ttempValue = ((2 * value) - 2);\n\t\treturn 0.5 * tempValue * tempValue * tempValue + 1;\n\t}\n}\n\n// Modeled after the quartic x^4\ninterpQuarticEaseIn(value)\n{\n\treturn value * value * value * value;\n}\n\n// Modeled after the quartic y = 1 - (x - 1)^4\ninterpQuarticEaseOut(value)\n{\n\ttempValue = (value - 1);\n\treturn tempValue * tempValue * tempValue * (1 - value) + 1;\n}\n\n// Modeled after the piecewise quartic\n// y = (1/2)((2x)^4) ; [0, 0.5)\n// y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1]\ninterpQuarticEaseInOut(value) \n{\n\tif (value < 0.5) {\n\t\treturn 8 * value * value * value * value;\n\t} else {\n\t\ttempValue = (value - 1);\n\t\treturn -8 * tempValue * tempValue * tempValue * tempValue + 1;\n\t}\n}\n\n// Modeled after the quintic y = x^5\ninterpQuinticEaseIn(value) \n{\n\treturn value * value * value * value * value;\n}\n\n// Modeled after the quintic y = (x - 1)^5 + 1\ninterpQuinticEaseOut(value) \n{\n\ttempValue = (value - 1);\n\treturn tempValue * tempValue * tempValue * tempValue * tempValue + 1;\n}\n\n// Modeled after the piecewise quintic\n// y = (1/2)((2x)^5) ; [0, 0.5)\n// y = (1/2)((2x-2)^5 + 2) ; [0.5, 1]\ninterpQuinticEaseInOut(value) \n{\n\tif (value < 0.5) {\n\t\treturn 16 * value * value * value * value * value;\n\t} else {\n\t\ttempValue = ((2 * value) - 2);\n\t\treturn 0.5 * tempValue * tempValue * tempValue * tempValue * tempValue + 1;\n\t}\n}\n\n// Modeled after quarter-cycle of sine wave\ninterpSineEaseIn(value)\n{\n\treturn sin((value - 1) * PI/2) + 1;\n}\n\n// Modeled after quarter-cycle of sine wave (different phase)\ninterpSineEaseOut(value)\n{\n\treturn sin(value * PI/2);\n}\n\n// Modeled after half sine wave\ninterpSineEaseInOut(value)\n{\n\treturn 0.5 * (1 - cos(value * PI));\n}\n\n// Modeled after shifted quadrant IV of unit circle\ninterpCircularEaseIn(value)\n{\n\treturn 1 - sqrt(1 - (value * value));\n}\n\n// Modeled after shifted quadrant II of unit circle\ninterpCircularEaseOut(value)\n{\n\treturn sqrt((2 - value) * value);\n}\n\n// Modeled after the piecewise circular function\n// y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5)\n// y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1]\ninterpCircularEaseInOut(value)\n{\n\tif (value < 0.5) {\n\t\treturn 0.5 * (1 - sqrt(1 - 4 * (value * value)));\n\t} else {\n\t\treturn 0.5 * (sqrt(-((2 * value) - 3) * ((2 * value) - 1)) + 1);\n\t}\n}\n\n// Modeled after the exponential function y = 2^(10(x - 1))\ninterpExponentialEaseIn(value)\n{\n\treturn (value == 0.0) ? value : pow(2, 10 * (value - 1));\n}\n\n// Modeled after the exponential function y = -2^(-10x) + 1\ninterpExponentialEaseOut(value)\n{\n\treturn (value == 1.0) ? value : 1 - pow(2, -10 * value);\n}\n\n// Modeled after the piecewise exponential\n// y = (1/2)2^(10(2x - 1)) ; [0,0.5)\n// y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1]\ninterpExponentialEaseInOut(value)\n{\n\tif (value == 0.0 || value == 1.0) return value;\n\t\n\tif (value < 0.5) {\n\t\treturn 0.5 * pow(2, (20 * value) - 10);\n\t} else {\n\t\treturn -0.5 * pow(2, (-20 * value) + 10) + 1;\n\t}\n}\n\n// Modeled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1))\ninterpElasticEaseIn(value)\n{\n\treturn sin(13 * HALFPI * value) * pow(2, 10 * (value - 1));\n}\n\n// Modeled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1\ninterpElasticEaseOut(value)\n{\n\treturn sin(-13 * HALFPI * (value + 1)) * pow(2, -10 * value) + 1;\n}\n\n// Modeled after the piecewise exponentially-damped sine wave:\n// y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5)\n// y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1]\ninterpElasticEaseInOut(value)\n{\n\tif (value < 0.5) {\n\t\treturn 0.5 * sin(13 * HALFPI * (2 * value)) * pow(2, 10 * ((2 * value) - 1));\n\t} else {\n\t\treturn 0.5 * (sin(-13 * HALFPI * ((2 * value - 1) + 1)) * pow(2, -10 * (2 * value - 1)) + 2);\n\t}\n}\n\n// Modeled after the overshooting cubic y = x^3-x*sin(x*pi)\ninterpBackEaseIn(value)\n{\n\treturn value * value * value - value * sin(value * PI);\n}\n\n// Modeled after overshooting cubic y = 1-((1-x)^3-(1-x)*sin((1-x)*pi))\ninterpBackEaseOut(value)\n{\n\ttempValue = (1 - value);\n\treturn 1 - (tempValue * tempValue * tempValue - tempValue * sin(tempValue * PI));\n}\n\n// Modeled after the piecewise overshooting cubic function:\n// y = (1/2)*((2x)^3-(2x)*sin(2*x*pi)) ; [0, 0.5)\n// y = (1/2)*(1-((1-x)^3-(1-x)*sin((1-x)*pi))+1) ; [0.5, 1]\ninterpBackEaseInOut(value)\n{\n\tif (value < 0.5) {\n\t\ttempValue = 2 * value;\n\t\treturn 0.5 * (tempValue * tempValue * tempValue - tempValue * sin(tempValue * PI));\n\t} else {\n\t\ttempValue = (1 - (2*value - 1));\n\t\treturn 0.5 * (1 - (tempValue * tempValue * tempValue - tempValue * sin(tempValue * PI))) + 0.5;\n\t}\n}\n\ninterpBounceEaseIn(value)\n{\n\treturn 1 - interpBounceEaseOut(1 - value);\n}\n\ninterpBounceEaseOut(value)\n{\n\tif (value < 4/11.0) {\n\t\treturn (121 * value * value)/16.0;\n\t} else if (value < 8/11.0) {\n\t\treturn (363/40.0 * value * value) - (99/10.0 * value) + 17/5.0;\n\t} else if (value < 9/10.0) {\n\t\treturn (4356/361.0 * value * value) - (35442/1805.0 * value) + 16061/1805.0;\n\t} else {\n\t\treturn (54/5.0 * value * value) - (513/25.0 * value) + 268/25.0;\n\t}\n}\n\ninterpBounceEaseInOut(value)\n{\n\tif (value < 0.5) {\n\t\treturn 0.5 * interpBounceEaseIn(value*2);\n\t} else {\n\t\treturn 0.5 * interpBounceEaseOut(value * 2 - 1) + 0.5;\n\t}\n}\n\r\n\nif (easefunc == 0) {\nout1 = in1;\n} else if (easefunc == 1) {\nout1 = interpQuadraticEaseIn(in1);\n} else if (easefunc == 2) {\nout1 = interpQuadraticEaseOut(in1);\n} else if (easefunc == 3) {\nout1 = interpQuadraticEaseInOut(in1);\n} else if (easefunc == 4) {\nout1 = interpCubicEaseIn(in1);\n} else if (easefunc == 5) {\nout1 = interpCubicEaseOut(in1);\n} else if (easefunc == 6) {\nout1 = interpCubicEaseInOut(in1);\n} else if (easefunc == 7) {\nout1 = interpQuarticEaseIn(in1);\n} else if (easefunc == 8) {\nout1 = interpQuarticEaseOut(in1);\n} else if (easefunc == 9) {\nout1 = interpQuarticEaseInOut(in1);\n} else if (easefunc == 10) {\nout1 = interpQuinticEaseIn(in1);\n} else if (easefunc == 11) {\nout1 = interpQuinticEaseOut(in1); \n} else if (easefunc == 12) {\nout1 = interpQuinticEaseInOut(in1); \n} else if (easefunc == 13) {\nout1 = interpSineEaseIn(in1);\n} else if (easefunc == 14) {\nout1 = interpSineEaseOut(in1);\n} else if (easefunc == 15) {\nout1 = interpSineEaseInOut(in1);\n} else if (easefunc == 16) {\nout1 = interpCircularEaseIn(in1);\n} else if (easefunc == 17) {\nout1 = interpCircularEaseOut(in1);\n} else if (easefunc == 18) {\nout1 = interpCircularEaseInOut(in1);\n} else if (easefunc == 19) {\nout1 = interpExponentialEaseIn(in1);\n} else if (easefunc == 20) {\nout1 = interpExponentialEaseOut(in1);\n} else if (easefunc == 21) {\nout1 = interpExponentialEaseInOut(in1);\n} else if (easefunc == 22) {\nout1 = interpElasticEaseIn(in1);\n} else if (easefunc == 23) {\nout1 = interpElasticEaseOut(in1);\n} else if (easefunc == 24) {\nout1 = interpElasticEaseInOut(in1);\n} else if (easefunc == 25) {\nout1 = interpBackEaseIn(in1);\n} else if (easefunc == 26) {\nout1 = interpBackEaseOut(in1);\n} else if (easefunc == 27) {\nout1 = interpBackEaseInOut(in1);\n} else if (easefunc == 28) {\nout1 = interpBounceEaseIn(in1);\n} else if (easefunc == 29) {\nout1 = interpBounceEaseOut(in1);\n} else if (easefunc == 30) {\nout1 = interpBounceEaseInOut(in1);\n}", "fontface" : 0, "fontname" : "", "fontsize" : 12.0, "id" : "obj-136", "maxclass" : "codebox", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 79.0, 564.0, 583.0, 397.799987999999985 ] } } , { "box" : { "id" : "obj-19", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 696.0, 8.0, 81.0, 22.0 ], "text" : "param relAmt" } } , { "box" : { "id" : "obj-17", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 696.0, 70.0, 70.0, 22.0 ], "text" : "mstosamps" } } , { "box" : { "id" : "obj-18", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 696.0, 38.0, 85.0, 22.0 ], "text" : "param relTime" } } , { "box" : { "id" : "obj-14", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 562.0, 70.0, 70.0, 22.0 ], "text" : "mstosamps" } } , { "box" : { "id" : "obj-15", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 562.0, 38.0, 95.0, 22.0 ], "text" : "param atk2Time" } } , { "box" : { "id" : "obj-16", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 562.0, 8.0, 86.0, 22.0 ], "text" : "param susAmt" } } , { "box" : { "id" : "obj-13", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 431.0, 70.0, 70.0, 22.0 ], "text" : "mstosamps" } } , { "box" : { "id" : "obj-11", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 431.0, 38.0, 91.0, 22.0 ], "text" : "param decTime" } } , { "box" : { "id" : "obj-8", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 431.0, 8.0, 87.0, 22.0 ], "text" : "param decAmt" } } , { "box" : { "id" : "obj-7", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 254.75, 8.0, 90.0, 22.0 ], "text" : "param atk1Amt" } } , { "box" : { "id" : "obj-3", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 254.75, 38.0, 118.0, 22.0 ], "text" : "param atk1Time 500" } } , { "box" : { "id" : "obj-6", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 831.0, 38.0, 90.0, 22.0 ], "text" : "history curTime" } } , { "box" : { "id" : "obj-20", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 831.0, 8.0, 79.0, 22.0 ], "text" : "history curLvl" } } , { "box" : { "id" : "obj-12", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 254.75, 70.0, 70.0, 22.0 ], "text" : "mstosamps" } } , { "box" : { "code" : "trig = in1;\r\natk1TimeS = in2;\r\ndecTimeS = in3;\r\natk2TimeS = in4;\r\nrelTimeS = in5;\r\nminLvl = 0.001;\r\nmaxLvl = 1;\r\ncurLvl = 1;\r\n//lastAmt = 1;\r\n\r\nif(delta(trig != 0) == 1) {\r\n\tcurTime = 0;\r\n\tcurLvl = 0.001;\r\n\t//lastAmt = 0.001;\r\n}\r\n\r\nif(delta(trig != 1) == 1) {\r\n\tcurTime = atk1TimeS + decTimeS + atk2TimeS;\r\n\t//curLvl = 0.001;\r\n}\r\n\t\r\nif(trig == 1) {\r\n\t\r\n\t// Attack 1\r\n\tif(curTime < atk1TimeS) {\r\n\t\tcurLvl *= atk1Amt/atk1TimeS * curTime;\r\n\t\tcurTime += 1;\r\n\t}\r\n\t// Decay\r\n\telse if(curTime < atk1TimeS + decTimeS) {\r\n\t\tcurLvl *= atk1Amt + ((decAmt - atk1Amt) / decTimeS * (curTime - atk1TimeS));\r\n\t\tcurTime += 1;\r\n\t}\r\n\t// Attack 2\r\n\telse if(curTime < atk1TimeS + decTimeS + atk2TimeS) {\r\n\t\tcurLvl *= decAmt + ((susAmt - decAmt) / atk2TimeS * (curTime - (atk1TimeS + decTimeS)));\r\n\t\tcurTime += 1;\r\n\t}\r\n\t// Sustain\r\n\telse {\r\n\t\tcurLvl = susAmt;\r\n\t}\r\n\t\r\n\tlastAmt = curLvl*1;\r\n\r\n}\r\nelse {\r\n\t\r\n\t// Release\r\n\tif(curTime < atk1TimeS + decTimeS + atk2TimeS + relTimeS) {\r\n\t\tcurLvl = ((-1*lastAmt)*curLvl)/relTimeS * (curTime - (atk1TimeS + decTimeS + atk2TimeS + relTimeS));\r\n\t\tcurTime += 1;\r\n\t}\r\n\telse {\r\n\t\t//curLvl = relAmt;\r\n\t\tcurLvl = 0.0001;\r\n\t\t//lastAmt = curLvl;\r\n\t\tcurTime += 1;\r\n\t}\r\n\r\n}\r\n\r\n\r\n// Safety belt so we don't go to zero\r\nif(curLvl <= minLvl) curLvl = 0.00001;\r\n\r\nout1 = curLvl;", "fontface" : 0, "fontname" : "", "fontsize" : 12.0, "id" : "obj-5", "maxclass" : "codebox", "numinlets" : 5, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 79.0, 120.0, 722.0, 432.0 ] } } , { "box" : { "id" : "obj-1", "maxclass" : "newobj", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 79.0, 14.0, 28.0, 22.0 ], "text" : "in 1" } } , { "box" : { "id" : "obj-4", "maxclass" : "newobj", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 79.0, 1290.0, 35.0, 22.0 ], "text" : "out 1" } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-5", 0 ], "source" : [ "obj-1", 0 ] } } , { "patchline" : { "destination" : [ "obj-4", 0 ], "source" : [ "obj-10", 0 ] } } , { "patchline" : { "destination" : [ "obj-13", 0 ], "source" : [ "obj-11", 0 ] } } , { "patchline" : { "destination" : [ "obj-5", 1 ], "source" : [ "obj-12", 0 ] } } , { "patchline" : { "destination" : [ "obj-5", 2 ], "source" : [ "obj-13", 0 ] } } , { "patchline" : { "destination" : [ "obj-10", 0 ], "source" : [ "obj-136", 0 ] } } , { "patchline" : { "destination" : [ "obj-5", 3 ], "source" : [ "obj-14", 0 ] } } , { "patchline" : { "destination" : [ "obj-14", 0 ], "source" : [ "obj-15", 0 ] } } , { "patchline" : { "destination" : [ "obj-5", 4 ], "source" : [ "obj-17", 0 ] } } , { "patchline" : { "destination" : [ "obj-17", 0 ], "source" : [ "obj-18", 0 ] } } , { "patchline" : { "destination" : [ "obj-12", 0 ], "source" : [ "obj-3", 0 ] } } , { "patchline" : { "destination" : [ "obj-136", 0 ], "source" : [ "obj-5", 0 ] } } ] } , "patching_rect" : [ 15.0, 195.0, 635.0, 22.0 ], "text" : "gen~" } } , { "box" : { "id" : "obj-18", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 705.0, 60.0, 60.0, 22.0 ], "text" : "relAmt $1" } } , { "box" : { "id" : "obj-17", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 615.0, 60.0, 65.0, 22.0 ], "text" : "relTime $1" } } , { "box" : { "id" : "obj-16", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 525.0, 60.0, 65.0, 22.0 ], "text" : "susAmt $1" } } , { "box" : { "id" : "obj-15", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 435.0, 60.0, 74.0, 22.0 ], "text" : "atk2Time $1" } } , { "box" : { "id" : "obj-12", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 255.0, 60.0, 71.0, 22.0 ], "text" : "decTime $1" } } , { "box" : { "id" : "obj-13", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 345.0, 60.0, 66.0, 22.0 ], "text" : "decAmt $1" } } , { "box" : { "id" : "obj-40", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 75.0, 60.0, 74.0, 22.0 ], "text" : "atk1Time $1" } } , { "box" : { "id" : "obj-39", "maxclass" : "message", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 165.0, 60.0, 69.0, 22.0 ], "text" : "atk1Amt $1" } } , { "box" : { "comment" : "Level", "id" : "obj-11", "index" : 1, "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, "patching_rect" : [ 15.0, 345.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Release Level (0-1)", "id" : "obj-10", "index" : 9, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 705.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Release Time (ms)", "id" : "obj-9", "index" : 8, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 615.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Sustain Level (0-1)", "id" : "obj-8", "index" : 7, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 525.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Attack 2 Time (ms)", "id" : "obj-6", "index" : 6, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 435.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Decay Level (0-1)", "id" : "obj-5", "index" : 5, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 345.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Decay Time (ms)", "id" : "obj-4", "index" : 4, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 255.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Trig on/off", "id" : "obj-3", "index" : 1, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "int" ], "patching_rect" : [ 15.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Attack 1 Amount (0-1)", "id" : "obj-2", "index" : 3, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 165.0, 15.0, 30.0, 30.0 ] } } , { "box" : { "comment" : "Attack 1 Time (ms)", "id" : "obj-1", "index" : 2, "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, "outlettype" : [ "" ], "patching_rect" : [ 75.0, 15.0, 30.0, 30.0 ] } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-40", 0 ], "source" : [ "obj-1", 0 ] } } , { "patchline" : { "destination" : [ "obj-18", 0 ], "order" : 1, "source" : [ "obj-10", 0 ] } } , { "patchline" : { "destination" : [ "obj-28", 3 ], "order" : 0, "source" : [ "obj-10", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-12", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-13", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-15", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-16", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-17", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-18", 0 ] } } , { "patchline" : { "destination" : [ "obj-24", 0 ], "source" : [ "obj-19", 0 ] } } , { "patchline" : { "destination" : [ "obj-28", 0 ], "order" : 0, "source" : [ "obj-2", 0 ] } } , { "patchline" : { "destination" : [ "obj-39", 0 ], "order" : 1, "source" : [ "obj-2", 0 ] } } , { "patchline" : { "destination" : [ "obj-11", 0 ], "source" : [ "obj-20", 0 ] } } , { "patchline" : { "destination" : [ "obj-22", 0 ], "source" : [ "obj-21", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-22", 0 ] } } , { "patchline" : { "destination" : [ "obj-25", 0 ], "source" : [ "obj-23", 0 ] } } , { "patchline" : { "destination" : [ "obj-7", 0 ], "source" : [ "obj-24", 0 ] } } , { "patchline" : { "destination" : [ "obj-26", 0 ], "order" : 0, "source" : [ "obj-25", 0 ] } } , { "patchline" : { "destination" : [ "obj-28", 4 ], "order" : 1, "source" : [ "obj-25", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-26", 0 ] } } , { "patchline" : { "destination" : [ "obj-7", 0 ], "source" : [ "obj-28", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-3", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-39", 0 ] } } , { "patchline" : { "destination" : [ "obj-12", 0 ], "source" : [ "obj-4", 0 ] } } , { "patchline" : { "destination" : [ "obj-20", 0 ], "source" : [ "obj-40", 0 ] } } , { "patchline" : { "destination" : [ "obj-13", 0 ], "order" : 1, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-28", 1 ], "order" : 0, "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-15", 0 ], "source" : [ "obj-6", 0 ] } } , { "patchline" : { "destination" : [ "obj-16", 0 ], "order" : 1, "source" : [ "obj-8", 0 ] } } , { "patchline" : { "destination" : [ "obj-28", 2 ], "order" : 0, "source" : [ "obj-8", 0 ] } } , { "patchline" : { "destination" : [ "obj-17", 0 ], "source" : [ "obj-9", 0 ] } } ] } , "patching_rect" : [ 438.0, 198.0, 293.0, 22.0 ], "saved_object_attributes" : { "description" : "", "digest" : "", "globalpatchername" : "", "tags" : "" } , "text" : "patcher Envelope" } } , { "box" : { "fontface" : 0, "fontname" : "Arial", "fontsize" : 12.0, "id" : "obj-36", "maxclass" : "number~", "mode" : 2, "numinlets" : 2, "numoutlets" : 2, "outlettype" : [ "signal", "float" ], "patching_rect" : [ 524.0, 245.0, 56.0, 22.0 ], "sig" : 0.0 } } , { "box" : { "id" : "obj-27", "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "parameter_enable" : 0, "patching_rect" : [ 114.0, 16.0, 24.0, 24.0 ] } } , { "box" : { "id" : "obj-26", "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, "outlettype" : [ "int" ], "parameter_enable" : 0, "patching_rect" : [ 114.0, 116.0, 24.0, 24.0 ] } } , { "box" : { "id" : "obj-25", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "bang" ], "patching_rect" : [ 114.0, 62.0, 69.0, 22.0 ], "text" : "metro 2000" } } , { "box" : { "id" : "obj-23", "maxclass" : "newobj", "numinlets" : 2, "numoutlets" : 1, "outlettype" : [ "float" ], "patching_rect" : [ 438.0, 245.0, 81.0, 22.0 ], "text" : "snapshot~ 10" } } , { "box" : { "bgcolor" : [ 0.0, 0.0, 0.0, 1.0 ], "id" : "obj-19", "maxclass" : "multislider", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "" ], "parameter_enable" : 0, "patching_rect" : [ 438.0, 284.0, 133.0, 66.0 ], "setminmax" : [ 0.0, 1.0 ], "setstyle" : 5, "slidercolor" : [ 0.992156862745098, 0.72156862745098, 0.243137254901961, 1.0 ], "thickness" : 1 } } , { "box" : { "id" : "obj-6", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 438.0, 116.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 100.0, "parameter_shortname" : "Amount", "parameter_type" : 0, "parameter_unitstyle" : 5, "parameter_longname" : "live.dial[1]" } } , "varname" : "live.dial[1]" } } , { "box" : { "id" : "obj-5", "maxclass" : "live.dial", "numinlets" : 1, "numoutlets" : 2, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "patching_rect" : [ 438.0, 57.0, 41.0, 48.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_mmax" : 1000.0, "parameter_shortname" : "Attack 1", "parameter_type" : 0, "parameter_unitstyle" : 2, "parameter_longname" : "live.dial" } } , "varname" : "live.dial" } } ], "lines" : [ { "patchline" : { "destination" : [ "obj-19", 0 ], "source" : [ "obj-23", 0 ] } } , { "patchline" : { "destination" : [ "obj-26", 0 ], "source" : [ "obj-25", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 0 ], "source" : [ "obj-26", 0 ] } } , { "patchline" : { "destination" : [ "obj-25", 0 ], "source" : [ "obj-27", 0 ] } } , { "patchline" : { "destination" : [ "obj-23", 0 ], "order" : 1, "source" : [ "obj-41", 0 ] } } , { "patchline" : { "destination" : [ "obj-36", 0 ], "order" : 0, "source" : [ "obj-41", 0 ] } } , { "patchline" : { "destination" : [ "obj-53", 0 ], "source" : [ "obj-41", 1 ] } } , { "patchline" : { "destination" : [ "obj-41", 4 ], "source" : [ "obj-42", 1 ] } } , { "patchline" : { "destination" : [ "obj-41", 3 ], "source" : [ "obj-43", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 6 ], "source" : [ "obj-44", 1 ] } } , { "patchline" : { "destination" : [ "obj-41", 5 ], "source" : [ "obj-45", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 8 ], "source" : [ "obj-46", 1 ] } } , { "patchline" : { "destination" : [ "obj-41", 7 ], "source" : [ "obj-47", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 1 ], "source" : [ "obj-5", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 2 ], "source" : [ "obj-6", 1 ] } } , { "patchline" : { "destination" : [ "obj-41", 9 ], "source" : [ "obj-64", 0 ] } } , { "patchline" : { "destination" : [ "obj-41", 10 ], "source" : [ "obj-66", 0 ] } } ], "parameters" : { "obj-66" : [ "live.dial[8]", "Amount", 0 ], "obj-42" : [ "live.dial[2]", "Amount", 0 ], "obj-5" : [ "live.dial", "Attack 1", 0 ], "obj-45" : [ "live.dial[5]", "Attack 2", 0 ], "obj-44" : [ "live.dial[4]", "Sustain", 0 ], "obj-64" : [ "live.menu", "live.menu", 0 ], "obj-46" : [ "live.dial[6]", "Amount", 0 ], "obj-43" : [ "live.dial[3]", "Decay", 0 ], "obj-47" : [ "live.dial[7]", "Release", 0 ], "obj-6" : [ "live.dial[1]", "Amount", 0 ], "parameterbanks" : { } } , "dependency_cache" : [ ], "autosave" : 0 } }